home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 2.5 KB | 130 lines |
- 10 ' ******************
- 20 ' ** XREF **
- 30 ' ******************
- 40 '
- 50 CLEAR
- 60 SCREEN 0,0
- 70 WIDTH 80
- 80 KEY OFF
- 90 CLS
- 100 OPTION BASE 1
- 110 DIM PROGRAM$(999)
- 120 LOCATE 2,30
- 130 PRINT "* * * XREF * * *
- 140 LOCATE 7,1
- 150 INPUT "Program name (with extension) ";FILE$
- 160 OPEN FILE$ FOR INPUT AS # 1
- 170 WHILE NOT EOF(1)
- 180 COUNT=COUNT+1
- 190 LINE INPUT #1,PROGRAM$(COUNT)
- 200 TEST$=LEFT$(PROGRAM$(COUNT),1)
- 210 IF TEST$ >= "1" AND TEST$ <= "9" THEN 270
- 220 BEEP
- 230 PRINT
- 240 PRINT "File isn't an ascii program file ...
- 250 PRINT
- 260 END
- 270 WEND
- 280 CLOSE #1
- 290 FILE$=LEFT$(FILE$,INSTR(FILE$,"."))+"XRF"
- 300 RESTORE
- 310 SELECTIONS = 5
- 320 FOR I = 1 TO SELECTIONS
- 330 READ FL$(I)
- 340 NEXT I
- 350 DATA Search for all occurences of a string
- 360 DATA Replace all occurences of a string
- 370 DATA "SAVE "
- 380 DATA "LOAD "
- 390 DATA Quit
- 400 FL$(3) = FL$(3)+CHR$(34)+FILE$+CHR$(34)
- 410 FL$(4) = FL$(4)+CHR$(34)+FILE$+CHR$(34)
- 420 GOSUB 1060
- 430 ON CHOICE GOTO 460,630,920,1010
- 440 CLS
- 450 END
- 460 CLS
- 470 LOCATE 7,1
- 480 INPUT "String to search for ";SEARCH$
- 490 PRINT
- 500 LINES=0
- 510 FOR I = 1 TO COUNT
- 520 IF INSTR(PROGRAM$(I),SEARCH$) = 0 THEN 580
- 530 PRINT PROGRAM$(I)
- 540 LINES=LINES+1
- 550 IF LINES < 21 THEN 580
- 560 GOSUB 1200
- 570 LINES = 0
- 580 NEXT I
- 590 PRINT
- 600 PRINT "... end of search ..."
- 610 GOSUB 1200
- 620 GOTO 300
- 630 CLS
- 640 LOCATE 7,1
- 650 INPUT "String to search for ";SEARCH$
- 660 PRINT "String to replace each occurence of ";
- 670 PRINT CHR$(34);SEARCH$;CHR$(34);
- 680 INPUT RP$
- 690 IF INSTR(RP$,SEARCH$) = 0 THEN 750
- 700 BEEP
- 710 PRINT
- 720 PRINT "This replacement would result in an infinite loop !"
- 730 GOSUB 1200
- 740 GOTO 300
- 750 PRINT
- 760 LINES=0
- 770 FOR I = 1 TO COUNT
- 780 PTR=INSTR(PROGRAM$(I),SEARCH$)
- 790 IF PTR = 0 THEN 870
- 800 PROGRAM$(I) = LEFT$(PROGRAM$(I),PTR-1) + RP$ + MID$(PROGRAM$(I),PTR+LEN(SEARCH$))
- 810 PRINT PROGRAM$(I)
- 820 LINES=LINES+1
- 830 IF LINES < 21 THEN 860
- 840 GOSUB 1200
- 850 LINES = 0
- 860 GOTO 780
- 870 NEXT I
- 880 PRINT
- 890 PRINT "... end of replace ..."
- 900 GOSUB 1200
- 910 GOTO 300
- 920 CLS
- 930 LOCATE 7,1
- 940 PRINT "Writing ";FILE$;" out to the disk ..."
- 950 OPEN FILE$ FOR OUTPUT AS #1
- 960 FOR I = 1 TO COUNT
- 970 PRINT #1,PROGRAM$(I)
- 980 NEXT I
- 990 CLOSE #1
- 1000 GOTO 300
- 1010 COUNT = 0
- 1020 CLS
- 1030 LOCATE 7,1
- 1040 PRINT "Re-LOADing ";FILE$
- 1050 GOTO 160
- 1060 CLS
- 1070 LOCATE 12-SELECTIONS/2,1
- 1080 FOR FLI = 1 TO SELECTIONS
- 1090 COLOR 23
- 1100 PRINT CHR$(64+FLI);
- 1110 COLOR 7
- 1120 PRINT " ";FL$(FLI)
- 1130 NEXT FLI
- 1140 GOSUB 1270
- 1150 IF K$ >= "a" AND K$ <= "z" THEN K$=CHR$(ASC(K$)-32)
- 1160 CHOICE=ASC(K$)-64
- 1170 IF CHOICE < 1 OR CHOICE > SELECTIONS THEN 1140
- 1180 CLS
- 1190 RETURN
- 1200 ROW=CSRLIN
- 1210 COL=POS(0)
- 1220 LOCATE 25,25
- 1230 COLOR 23
- 1240 PRINT "Press any key to continue ..."
- 1250 LOCATE ROW,COL
- 1260 COLOR 7
- 1270 K$=INKEY$
- 1280 IF K$ = "" THEN 1270
- 1290 RETURN
-